There are different types of parallel applications. For example, computationally intensive applications (i.e., the application directs a processor to perform computational operations) are one type of parallel applications.
Parallel processing can be performed by two categories of systems. A “homogeneous” system implements one or more computers having the same type of processor and a “heterogeneous” system implements one or more computers having at least two types of processors (e.g., two different homogeneous systems may be combined to create a heterogeneous system). In either case, the parallel execution of an application workload by a plurality of processors improves system performance if the time needed to distribute and execute the workload for a plurality of parallel processors is less than the time needed to execute the workload for a single processor.
New or changing heterogeneous systems may be created over time. For example, an organization may purchase a computer having a first type of processor at one time, and at a later time, purchase another computer having a second type of processor. The organization may dynamically choose to configure the two computers to process applications as separate systems or to process applications as a heterogeneous system. In heterogeneous systems, efficiently distributing application workloads for parallel processing becomes more complicated due to the different capabilities of processors. For example, distributing the same amount of work to different processors of a heterogeneous system may result in under-utilization of some of the processors (e.g., the faster processor may be under-utilized). The under-utilization of processors reduces the performance of parallel processing.
To address this issue, at least some applications that are run on heterogeneous systems implement algorithms that assign more work to the thread of a faster processor. However, the time, cost and effort needed to design, test and implement such algorithms for new or changing heterogeneous systems are undesirable.